package com.suning.sawp.remote.intf;

import java.util.List;

import com.suning.rsf.provider.annotation.Contract;
import com.suning.rsf.provider.annotation.Method;
import com.suning.sawp.remote.dto.ClerkInfo;
import com.suning.sawp.remote.dto.DjLoginInfo;
import com.suning.sawp.remote.dto.ResponseData;

/**
 * 
 * 门店业务对外提供的数据接口<br> 
 * 〈功能详细描述〉
 *
 * @author 12061818
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
@Contract(name = "storeBizService", internal = false, description = "店+提供对外业务数据接口")
public interface StoreBizService {
    /**
     * 
     * 功能描述: 查询门店所在的主推商品编码集合<br>
     * 〈功能详细描述〉
     * 按品类查询
     * @param storeCode
     * @param categoryCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    @Method(idempotent = true, timeout = 500, retryTimes = 3,
            priority = "H", description = "查询门店对应本月主推商品编码")
    ResponseData<List<String>> queryMainPushCommCdsInStore(String storeCode, String categoryCode);
    
    /**
     * 
     * 功能描述: 根据会员编码查询绑定门店店员信息<br>
     * 〈功能详细描述〉
     * 根据会员编码查询会员中台所记录绑定店员工号，如果此工号已离职或者不在此门店，同样认为查询无记录
     * @param custNo
     * @param storeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    @Method(idempotent = true, timeout = 500, retryTimes = 3,
            priority = "H", description = "查询会员对应绑定门店店员信息")
    ResponseData<ClerkInfo> queryClerkInfoByCustNo(String custNo, String storeCode);
    
    /**
     * 
     * 功能描述: 根据工号查询店+登录账号所属的当前登录信息<br>
     * 〈功能详细描述〉
     * 提供给POSTS使用，提供门店、岗位、员工层级，供POSTS判断当前登录角色是否具备开单权限
     * @param staffId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    @Method(idempotent = true, timeout = 500, retryTimes = 3,
            priority = "H", description = "查询店+登录账号当前所属的账号信息")
    ResponseData<DjLoginInfo> queryDjLoginInfoByStaffId(String staffId);
}
